package com.tt.utils;

/**
 * @Title: dd
 * @Author zl
 * @Package com.tt.utils
 * @Date 2025/6/27 15:00
 * @description: dd
 */

import java.util.Random;

/**
 * 简体中文名字生成工具类
 */
public class ChineseNameGenerator {
    // 常见单字姓氏（前100个常见姓氏）
    private static final String[] SURNAMES = {
            "李", "王", "张", "刘", "陈", "杨", "赵", "黄", "周", "吴",
            "徐", "孙", "胡", "朱", "高", "林", "何", "郭", "马", "罗",
            "梁", "宋", "郑", "谢", "韩", "唐", "冯", "于", "董", "萧",
            "程", "曹", "袁", "邓", "许", "傅", "沈", "曾", "彭", "吕",
            "苏", "卢", "蒋", "蔡", "贾", "丁", "魏", "薛", "叶", "阎",
            "余", "潘", "杜", "戴", "夏", "钟", "汪", "田", "任", "姜",
            "范", "方", "石", "姚", "谭", "廖", "邹", "熊", "金", "陆",
            "郝", "孔", "白", "崔", "康", "毛", "邱", "秦", "江", "史",
            "顾", "侯", "邵", "孟", "龙", "万", "段", "雷", "钱", "汤",
            "尹", "黎", "易", "常", "武", "乔", "贺", "赖", "龚", "文"
    };

    // 常见名字用字（男女通用）
    private static final String[] NAME_CHARS = {
            "伟", "芳", "娜", "秀英", "敏", "静", "丽", "强", "磊", "军",
            "洋", "勇", "艳", "杰", "娟", "涛", "明", "超", "秀兰", "霞",
            "平", "刚", "桂英", "玉兰", "萍", "颖", "鑫", "晶", "华", "红",
            "宇", "建华", "亮", "建平", "建国", "建军", "晨", "浩", "凯", "秀珍",
            "桂兰", "凤英", "玉梅", "婷婷", "玉珍", "丹", "倩", "雪", "敏", "慧",
            "文", "欣", "淑英", "桂珍", "秀云", "桂芳", "丽华", "秀荣", "玉华", "琴",
            "兰英", "畅", "云", "洁", "峰", "帅", "旭", "宁", "婷", "玉",
            "飞", "燕", "鑫", "波", "彬", "琳", "雪梅", "玲", "杨", "璐",
            "阳", "晶", "欢", "玉英", "颖", "浩宇", "昊", "轩", "嘉", "哲"
    };

    private static final Random random = new Random();

    /**
     * 生成随机中文名字
     * @return 随机中文名字（姓氏+1-2个字的名字）
     */
    public static String generateChineseName() {
        // 随机选择姓氏
        String surname = SURNAMES[random.nextInt(SURNAMES.length)];

        // 随机决定名字是1个字还是2个字（70%概率1个字，30%概率2个字）
        int nameLength = random.nextDouble() < 0.7 ? 1 : 2;

        // 生成名字部分
        StringBuilder givenName = new StringBuilder();
        for (int i = 0; i < nameLength; i++) {
            givenName.append(NAME_CHARS[random.nextInt(NAME_CHARS.length)]);
        }

        return surname + givenName.toString();
    }

    public static void main(String[] args) {
        String strings = generateChineseName();
        System.out.println(strings);
    }
}
